Today's communications networks are software controlled. For example, Internet Protocol (IP) based networks such as Voice over Internet Protocol (VoIP) networks are software controlled. Functionalities can be added in the communications software using increments called features. As more and more features are added, the software has become overwhelmingly complex. Providing these new features into a plurality of software modules introduces the problem of contention as these independent software modules interact with each other.